// Copyright (c) 2016, SolidCP
// SolidCP is distributed under the Creative Commons Share-alike license
// 
// SolidCP is a fork of WebsitePanel:
// Copyright (c) 2015, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  Outercurve Foundation  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.4952
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace SolidCP.Providers.VirtualizationForPC
{
	using System.Xml.Serialization;
	using System.Web.Services;
	using System.ComponentModel;
	using System.Web.Services.Protocols;
	using SolidCP.Providers.Virtualization;
	using System;
	using System.Diagnostics;


	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Web.Services.WebServiceBindingAttribute(Name = "VirtualizationServerForPrivateCloudSoap", Namespace = "http://smbsaas/solidcp/server/")]
	[System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))]
	public partial class VirtualizationServerForPrivateCloud : Microsoft.Web.Services3.WebServicesClientProtocol
	{

		public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue;

		private System.Threading.SendOrPostCallback GetVirtualMachineOperationCompleted;

		private System.Threading.SendOrPostCallback GetVirtualMachineExOperationCompleted;

		private System.Threading.SendOrPostCallback GetVirtualMachinesOperationCompleted;

		private System.Threading.SendOrPostCallback GetVirtualMachineThumbnailImageOperationCompleted;

		private System.Threading.SendOrPostCallback CreateVirtualMachineOperationCompleted;

		private System.Threading.SendOrPostCallback CreateVMFromVMOperationCompleted;

		private System.Threading.SendOrPostCallback UpdateVirtualMachineOperationCompleted;

		private System.Threading.SendOrPostCallback ChangeVirtualMachineStateOperationCompleted;

		private System.Threading.SendOrPostCallback ShutDownVirtualMachineOperationCompleted;

		private System.Threading.SendOrPostCallback GetVirtualMachineJobsOperationCompleted;

		private System.Threading.SendOrPostCallback RenameVirtualMachineOperationCompleted;

		private System.Threading.SendOrPostCallback DeleteVirtualMachineOperationCompleted;

		private System.Threading.SendOrPostCallback GetVirtualMachineSnapshotsOperationCompleted;

		private System.Threading.SendOrPostCallback GetSnapshotOperationCompleted;

		private System.Threading.SendOrPostCallback CreateSnapshotOperationCompleted;

		private System.Threading.SendOrPostCallback RenameSnapshotOperationCompleted;

		private System.Threading.SendOrPostCallback ApplySnapshotOperationCompleted;

		private System.Threading.SendOrPostCallback DeleteSnapshotOperationCompleted;

		private System.Threading.SendOrPostCallback DeleteSnapshotSubtreeOperationCompleted;

		private System.Threading.SendOrPostCallback GetSnapshotThumbnailImageOperationCompleted;

		private System.Threading.SendOrPostCallback GetExternalSwitchesOperationCompleted;

		private System.Threading.SendOrPostCallback GetSwitchesOperationCompleted;

		private System.Threading.SendOrPostCallback SwitchExistsOperationCompleted;

		private System.Threading.SendOrPostCallback CreateSwitchOperationCompleted;

		private System.Threading.SendOrPostCallback DeleteSwitchOperationCompleted;

		private System.Threading.SendOrPostCallback GetInsertedDVDOperationCompleted;

		private System.Threading.SendOrPostCallback InsertDVDOperationCompleted;

		private System.Threading.SendOrPostCallback EjectDVDOperationCompleted;

		private System.Threading.SendOrPostCallback GetLibraryItemsOperationCompleted;

		private System.Threading.SendOrPostCallback GetOSLibraryItemsOperationCompleted;

		private System.Threading.SendOrPostCallback GetHostsOperationCompleted;

		private System.Threading.SendOrPostCallback GetClustersOperationCompleted;

		private System.Threading.SendOrPostCallback GetKVPItemsOperationCompleted;

		private System.Threading.SendOrPostCallback GetStandardKVPItemsOperationCompleted;

		private System.Threading.SendOrPostCallback AddKVPItemsOperationCompleted;

		private System.Threading.SendOrPostCallback RemoveKVPItemsOperationCompleted;

		private System.Threading.SendOrPostCallback ModifyKVPItemsOperationCompleted;

		private System.Threading.SendOrPostCallback GetVirtualHardDiskInfoOperationCompleted;

		private System.Threading.SendOrPostCallback MountVirtualHardDiskOperationCompleted;

		private System.Threading.SendOrPostCallback UnmountVirtualHardDiskOperationCompleted;

		private System.Threading.SendOrPostCallback ExpandVirtualHardDiskOperationCompleted;

		private System.Threading.SendOrPostCallback ConvertVirtualHardDiskOperationCompleted;

		private System.Threading.SendOrPostCallback DeleteRemoteFileOperationCompleted;

		private System.Threading.SendOrPostCallback ExpandDiskVolumeOperationCompleted;

		private System.Threading.SendOrPostCallback ReadRemoteFileOperationCompleted;

		private System.Threading.SendOrPostCallback WriteRemoteFileOperationCompleted;

		private System.Threading.SendOrPostCallback GetJobOperationCompleted;

		private System.Threading.SendOrPostCallback GetAllJobsOperationCompleted;

		private System.Threading.SendOrPostCallback ChangeJobStateOperationCompleted;

		private System.Threading.SendOrPostCallback GetProcessorCoresNumberOperationCompleted;

		private System.Threading.SendOrPostCallback CheckServerStateOperationCompleted;

		private System.Threading.SendOrPostCallback GetDeviceEventsOperationCompleted;

		private System.Threading.SendOrPostCallback GetMonitoringAlertsOperationCompleted;

		private System.Threading.SendOrPostCallback GetPerfomanceValueOperationCompleted;

		private System.Threading.SendOrPostCallback ConfigureCreatedVMNetworkAdaptersOperationCompleted;

		private System.Threading.SendOrPostCallback MoveVMOperationCompleted;

		private System.Threading.SendOrPostCallback GetVirtualNetworkByHostNameOperationCompleted;

		/// <remarks/>
		public VirtualizationServerForPrivateCloud()
		{
			this.Url = "http://localhost:9003/VirtualizationServerForPrivateCloud.asmx";
		}

		/// <remarks/>
		public event GetVirtualMachineCompletedEventHandler GetVirtualMachineCompleted;

		/// <remarks/>
		public event GetVirtualMachineExCompletedEventHandler GetVirtualMachineExCompleted;

		/// <remarks/>
		public event GetVirtualMachinesCompletedEventHandler GetVirtualMachinesCompleted;

		/// <remarks/>
		public event GetVirtualMachineThumbnailImageCompletedEventHandler GetVirtualMachineThumbnailImageCompleted;

		/// <remarks/>
		public event CreateVirtualMachineCompletedEventHandler CreateVirtualMachineCompleted;

		/// <remarks/>
		public event CreateVMFromVMCompletedEventHandler CreateVMFromVMCompleted;

		/// <remarks/>
		public event UpdateVirtualMachineCompletedEventHandler UpdateVirtualMachineCompleted;

		/// <remarks/>
		public event ChangeVirtualMachineStateCompletedEventHandler ChangeVirtualMachineStateCompleted;

		/// <remarks/>
		public event ShutDownVirtualMachineCompletedEventHandler ShutDownVirtualMachineCompleted;

		/// <remarks/>
		public event GetVirtualMachineJobsCompletedEventHandler GetVirtualMachineJobsCompleted;

		/// <remarks/>
		public event RenameVirtualMachineCompletedEventHandler RenameVirtualMachineCompleted;

		/// <remarks/>
		public event DeleteVirtualMachineCompletedEventHandler DeleteVirtualMachineCompleted;

		/// <remarks/>
		public event GetVirtualMachineSnapshotsCompletedEventHandler GetVirtualMachineSnapshotsCompleted;

		/// <remarks/>
		public event GetSnapshotCompletedEventHandler GetSnapshotCompleted;

		/// <remarks/>
		public event CreateSnapshotCompletedEventHandler CreateSnapshotCompleted;

		/// <remarks/>
		public event RenameSnapshotCompletedEventHandler RenameSnapshotCompleted;

		/// <remarks/>
		public event ApplySnapshotCompletedEventHandler ApplySnapshotCompleted;

		/// <remarks/>
		public event DeleteSnapshotCompletedEventHandler DeleteSnapshotCompleted;

		/// <remarks/>
		public event DeleteSnapshotSubtreeCompletedEventHandler DeleteSnapshotSubtreeCompleted;

		/// <remarks/>
		public event GetSnapshotThumbnailImageCompletedEventHandler GetSnapshotThumbnailImageCompleted;

		/// <remarks/>
		public event GetExternalSwitchesCompletedEventHandler GetExternalSwitchesCompleted;

		/// <remarks/>
		public event GetSwitchesCompletedEventHandler GetSwitchesCompleted;

		/// <remarks/>
		public event SwitchExistsCompletedEventHandler SwitchExistsCompleted;

		/// <remarks/>
		public event CreateSwitchCompletedEventHandler CreateSwitchCompleted;

		/// <remarks/>
		public event DeleteSwitchCompletedEventHandler DeleteSwitchCompleted;

		/// <remarks/>
		public event GetInsertedDVDCompletedEventHandler GetInsertedDVDCompleted;

		/// <remarks/>
		public event InsertDVDCompletedEventHandler InsertDVDCompleted;

		/// <remarks/>
		public event EjectDVDCompletedEventHandler EjectDVDCompleted;

		/// <remarks/>
		public event GetLibraryItemsCompletedEventHandler GetLibraryItemsCompleted;

		/// <remarks/>
		public event GetOSLibraryItemsCompletedEventHandler GetOSLibraryItemsCompleted;

		/// <remarks/>
		public event GetHostsCompletedEventHandler GetHostsCompleted;

		/// <remarks/>
		public event GetClustersCompletedEventHandler GetClustersCompleted;

		/// <remarks/>
		public event GetKVPItemsCompletedEventHandler GetKVPItemsCompleted;

		/// <remarks/>
		public event GetStandardKVPItemsCompletedEventHandler GetStandardKVPItemsCompleted;

		/// <remarks/>
		public event AddKVPItemsCompletedEventHandler AddKVPItemsCompleted;

		/// <remarks/>
		public event RemoveKVPItemsCompletedEventHandler RemoveKVPItemsCompleted;

		/// <remarks/>
		public event ModifyKVPItemsCompletedEventHandler ModifyKVPItemsCompleted;

		/// <remarks/>
		public event GetVirtualHardDiskInfoCompletedEventHandler GetVirtualHardDiskInfoCompleted;

		/// <remarks/>
		public event MountVirtualHardDiskCompletedEventHandler MountVirtualHardDiskCompleted;

		/// <remarks/>
		public event UnmountVirtualHardDiskCompletedEventHandler UnmountVirtualHardDiskCompleted;

		/// <remarks/>
		public event ExpandVirtualHardDiskCompletedEventHandler ExpandVirtualHardDiskCompleted;

		/// <remarks/>
		public event ConvertVirtualHardDiskCompletedEventHandler ConvertVirtualHardDiskCompleted;

		/// <remarks/>
		public event DeleteRemoteFileCompletedEventHandler DeleteRemoteFileCompleted;

		/// <remarks/>
		public event ExpandDiskVolumeCompletedEventHandler ExpandDiskVolumeCompleted;

		/// <remarks/>
		public event ReadRemoteFileCompletedEventHandler ReadRemoteFileCompleted;

		/// <remarks/>
		public event WriteRemoteFileCompletedEventHandler WriteRemoteFileCompleted;

		/// <remarks/>
		public event GetJobCompletedEventHandler GetJobCompleted;

		/// <remarks/>
		public event GetAllJobsCompletedEventHandler GetAllJobsCompleted;

		/// <remarks/>
		public event ChangeJobStateCompletedEventHandler ChangeJobStateCompleted;

		/// <remarks/>
		public event GetProcessorCoresNumberCompletedEventHandler GetProcessorCoresNumberCompleted;

		/// <remarks/>
		public event CheckServerStateCompletedEventHandler CheckServerStateCompleted;

		/// <remarks/>
		public event GetDeviceEventsCompletedEventHandler GetDeviceEventsCompleted;

		/// <remarks/>
		public event GetMonitoringAlertsCompletedEventHandler GetMonitoringAlertsCompleted;

		/// <remarks/>
		public event GetPerfomanceValueCompletedEventHandler GetPerfomanceValueCompleted;

		/// <remarks/>
		public event ConfigureCreatedVMNetworkAdaptersCompletedEventHandler ConfigureCreatedVMNetworkAdaptersCompleted;

		/// <remarks/>
		public event MoveVMCompletedEventHandler MoveVMCompleted;

		/// <remarks/>
		public event GetVirtualNetworkByHostNameCompletedEventHandler GetVirtualNetworkByHostNameCompleted;

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualMachine", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VMInfo GetVirtualMachine(string vmId)
		{
			object[] results = this.Invoke("GetVirtualMachine", new object[] {
                        vmId});
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualMachine(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualMachine", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public VMInfo EndGetVirtualMachine(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public void GetVirtualMachineAsync(string vmId)
		{
			this.GetVirtualMachineAsync(vmId, null);
		}

		/// <remarks/>
		public void GetVirtualMachineAsync(string vmId, object userState)
		{
			if ((this.GetVirtualMachineOperationCompleted == null))
			{
				this.GetVirtualMachineOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualMachineOperationCompleted);
			}
			this.InvokeAsync("GetVirtualMachine", new object[] {
                        vmId}, this.GetVirtualMachineOperationCompleted, userState);
		}

		private void OnGetVirtualMachineOperationCompleted(object arg)
		{
			if ((this.GetVirtualMachineCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualMachineCompleted(this, new GetVirtualMachineCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualMachineEx", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualMachine GetVirtualMachineEx(string vmId)
		{
			object[] results = this.Invoke("GetVirtualMachineEx", new object[] {
                        vmId});
			return ((VirtualMachine)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualMachineEx(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualMachineEx", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public VirtualMachine EndGetVirtualMachineEx(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualMachine)(results[0]));
		}

		/// <remarks/>
		public void GetVirtualMachineExAsync(string vmId)
		{
			this.GetVirtualMachineExAsync(vmId, null);
		}

		/// <remarks/>
		public void GetVirtualMachineExAsync(string vmId, object userState)
		{
			if ((this.GetVirtualMachineExOperationCompleted == null))
			{
				this.GetVirtualMachineExOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualMachineExOperationCompleted);
			}
			this.InvokeAsync("GetVirtualMachineEx", new object[] {
                        vmId}, this.GetVirtualMachineExOperationCompleted, userState);
		}

		private void OnGetVirtualMachineExOperationCompleted(object arg)
		{
			if ((this.GetVirtualMachineExCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualMachineExCompleted(this, new GetVirtualMachineExCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualMachines", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualMachine[] GetVirtualMachines()
		{
			object[] results = this.Invoke("GetVirtualMachines", new object[0]);
			return ((VirtualMachine[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualMachines(System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualMachines", new object[0], callback, asyncState);
		}

		/// <remarks/>
		public VirtualMachine[] EndGetVirtualMachines(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualMachine[])(results[0]));
		}

		/// <remarks/>
		public void GetVirtualMachinesAsync()
		{
			this.GetVirtualMachinesAsync(null);
		}

		/// <remarks/>
		public void GetVirtualMachinesAsync(object userState)
		{
			if ((this.GetVirtualMachinesOperationCompleted == null))
			{
				this.GetVirtualMachinesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualMachinesOperationCompleted);
			}
			this.InvokeAsync("GetVirtualMachines", new object[0], this.GetVirtualMachinesOperationCompleted, userState);
		}

		private void OnGetVirtualMachinesOperationCompleted(object arg)
		{
			if ((this.GetVirtualMachinesCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualMachinesCompleted(this, new GetVirtualMachinesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualMachineThumbnailImage", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return: System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")]
		public byte[] GetVirtualMachineThumbnailImage(string vmId, ThumbnailSize size)
		{
			object[] results = this.Invoke("GetVirtualMachineThumbnailImage", new object[] {
                        vmId,
                        size});
			return ((byte[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualMachineThumbnailImage(string vmId, ThumbnailSize size, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualMachineThumbnailImage", new object[] {
                        vmId,
                        size}, callback, asyncState);
		}

		/// <remarks/>
		public byte[] EndGetVirtualMachineThumbnailImage(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((byte[])(results[0]));
		}

		/// <remarks/>
		public void GetVirtualMachineThumbnailImageAsync(string vmId, ThumbnailSize size)
		{
			this.GetVirtualMachineThumbnailImageAsync(vmId, size, null);
		}

		/// <remarks/>
		public void GetVirtualMachineThumbnailImageAsync(string vmId, ThumbnailSize size, object userState)
		{
			if ((this.GetVirtualMachineThumbnailImageOperationCompleted == null))
			{
				this.GetVirtualMachineThumbnailImageOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualMachineThumbnailImageOperationCompleted);
			}
			this.InvokeAsync("GetVirtualMachineThumbnailImage", new object[] {
                        vmId,
                        size}, this.GetVirtualMachineThumbnailImageOperationCompleted, userState);
		}

		private void OnGetVirtualMachineThumbnailImageOperationCompleted(object arg)
		{
			if ((this.GetVirtualMachineThumbnailImageCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualMachineThumbnailImageCompleted(this, new GetVirtualMachineThumbnailImageCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateVirtualMachine", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VMInfo CreateVirtualMachine(VMInfo vm)
		{
			object[] results = this.Invoke("CreateVirtualMachine", new object[] {
                        vm});
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginCreateVirtualMachine(VMInfo vm, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("CreateVirtualMachine", new object[] {
                        vm}, callback, asyncState);
		}

		/// <remarks/>
		public VMInfo EndCreateVirtualMachine(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public void CreateVirtualMachineAsync(VMInfo vm)
		{
			this.CreateVirtualMachineAsync(vm, null);
		}

		/// <remarks/>
		public void CreateVirtualMachineAsync(VMInfo vm, object userState)
		{
			if ((this.CreateVirtualMachineOperationCompleted == null))
			{
				this.CreateVirtualMachineOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateVirtualMachineOperationCompleted);
			}
			this.InvokeAsync("CreateVirtualMachine", new object[] {
                        vm}, this.CreateVirtualMachineOperationCompleted, userState);
		}

		private void OnCreateVirtualMachineOperationCompleted(object arg)
		{
			if ((this.CreateVirtualMachineCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.CreateVirtualMachineCompleted(this, new CreateVirtualMachineCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateVMFromVM", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VMInfo CreateVMFromVM(string sourceName, VMInfo vmTemplate, System.Guid taskGuid)
		{
			object[] results = this.Invoke("CreateVMFromVM", new object[] {
                        sourceName,
                        vmTemplate,
                        taskGuid});
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginCreateVMFromVM(string sourceName, VMInfo vmTemplate, System.Guid taskGuid, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("CreateVMFromVM", new object[] {
                        sourceName,
                        vmTemplate,
                        taskGuid}, callback, asyncState);
		}

		/// <remarks/>
		public VMInfo EndCreateVMFromVM(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public void CreateVMFromVMAsync(string sourceName, VMInfo vmTemplate, System.Guid taskGuid)
		{
			this.CreateVMFromVMAsync(sourceName, vmTemplate, taskGuid, null);
		}

		/// <remarks/>
		public void CreateVMFromVMAsync(string sourceName, VMInfo vmTemplate, System.Guid taskGuid, object userState)
		{
			if ((this.CreateVMFromVMOperationCompleted == null))
			{
				this.CreateVMFromVMOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateVMFromVMOperationCompleted);
			}
			this.InvokeAsync("CreateVMFromVM", new object[] {
                        sourceName,
                        vmTemplate,
                        taskGuid}, this.CreateVMFromVMOperationCompleted, userState);
		}

		private void OnCreateVMFromVMOperationCompleted(object arg)
		{
			if ((this.CreateVMFromVMCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.CreateVMFromVMCompleted(this, new CreateVMFromVMCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateVirtualMachine", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VMInfo UpdateVirtualMachine(VMInfo vm)
		{
			object[] results = this.Invoke("UpdateVirtualMachine", new object[] {
                        vm});
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginUpdateVirtualMachine(VMInfo vm, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("UpdateVirtualMachine", new object[] {
                        vm}, callback, asyncState);
		}

		/// <remarks/>
		public VMInfo EndUpdateVirtualMachine(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public void UpdateVirtualMachineAsync(VMInfo vm)
		{
			this.UpdateVirtualMachineAsync(vm, null);
		}

		/// <remarks/>
		public void UpdateVirtualMachineAsync(VMInfo vm, object userState)
		{
			if ((this.UpdateVirtualMachineOperationCompleted == null))
			{
				this.UpdateVirtualMachineOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateVirtualMachineOperationCompleted);
			}
			this.InvokeAsync("UpdateVirtualMachine", new object[] {
                        vm}, this.UpdateVirtualMachineOperationCompleted, userState);
		}

		private void OnUpdateVirtualMachineOperationCompleted(object arg)
		{
			if ((this.UpdateVirtualMachineCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.UpdateVirtualMachineCompleted(this, new UpdateVirtualMachineCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ChangeVirtualMachineState", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult ChangeVirtualMachineState(string vmId, VirtualMachineRequestedState newState)
		{
			object[] results = this.Invoke("ChangeVirtualMachineState", new object[] {
                        vmId,
                        newState});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginChangeVirtualMachineState(string vmId, VirtualMachineRequestedState newState, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ChangeVirtualMachineState", new object[] {
                        vmId,
                        newState}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndChangeVirtualMachineState(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void ChangeVirtualMachineStateAsync(string vmId, VirtualMachineRequestedState newState)
		{
			this.ChangeVirtualMachineStateAsync(vmId, newState, null);
		}

		/// <remarks/>
		public void ChangeVirtualMachineStateAsync(string vmId, VirtualMachineRequestedState newState, object userState)
		{
			if ((this.ChangeVirtualMachineStateOperationCompleted == null))
			{
				this.ChangeVirtualMachineStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeVirtualMachineStateOperationCompleted);
			}
			this.InvokeAsync("ChangeVirtualMachineState", new object[] {
                        vmId,
                        newState}, this.ChangeVirtualMachineStateOperationCompleted, userState);
		}

		private void OnChangeVirtualMachineStateOperationCompleted(object arg)
		{
			if ((this.ChangeVirtualMachineStateCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ChangeVirtualMachineStateCompleted(this, new ChangeVirtualMachineStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ShutDownVirtualMachine", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ReturnCode ShutDownVirtualMachine(string vmId, bool force, string reason)
		{
			object[] results = this.Invoke("ShutDownVirtualMachine", new object[] {
                        vmId,
                        force,
                        reason});
			return ((ReturnCode)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginShutDownVirtualMachine(string vmId, bool force, string reason, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ShutDownVirtualMachine", new object[] {
                        vmId,
                        force,
                        reason}, callback, asyncState);
		}

		/// <remarks/>
		public ReturnCode EndShutDownVirtualMachine(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ReturnCode)(results[0]));
		}

		/// <remarks/>
		public void ShutDownVirtualMachineAsync(string vmId, bool force, string reason)
		{
			this.ShutDownVirtualMachineAsync(vmId, force, reason, null);
		}

		/// <remarks/>
		public void ShutDownVirtualMachineAsync(string vmId, bool force, string reason, object userState)
		{
			if ((this.ShutDownVirtualMachineOperationCompleted == null))
			{
				this.ShutDownVirtualMachineOperationCompleted = new System.Threading.SendOrPostCallback(this.OnShutDownVirtualMachineOperationCompleted);
			}
			this.InvokeAsync("ShutDownVirtualMachine", new object[] {
                        vmId,
                        force,
                        reason}, this.ShutDownVirtualMachineOperationCompleted, userState);
		}

		private void OnShutDownVirtualMachineOperationCompleted(object arg)
		{
			if ((this.ShutDownVirtualMachineCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ShutDownVirtualMachineCompleted(this, new ShutDownVirtualMachineCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualMachineJobs", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ConcreteJob[] GetVirtualMachineJobs(string vmId)
		{
			object[] results = this.Invoke("GetVirtualMachineJobs", new object[] {
                        vmId});
			return ((ConcreteJob[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualMachineJobs(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualMachineJobs", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public ConcreteJob[] EndGetVirtualMachineJobs(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ConcreteJob[])(results[0]));
		}

		/// <remarks/>
		public void GetVirtualMachineJobsAsync(string vmId)
		{
			this.GetVirtualMachineJobsAsync(vmId, null);
		}

		/// <remarks/>
		public void GetVirtualMachineJobsAsync(string vmId, object userState)
		{
			if ((this.GetVirtualMachineJobsOperationCompleted == null))
			{
				this.GetVirtualMachineJobsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualMachineJobsOperationCompleted);
			}
			this.InvokeAsync("GetVirtualMachineJobs", new object[] {
                        vmId}, this.GetVirtualMachineJobsOperationCompleted, userState);
		}

		private void OnGetVirtualMachineJobsOperationCompleted(object arg)
		{
			if ((this.GetVirtualMachineJobsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualMachineJobsCompleted(this, new GetVirtualMachineJobsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/RenameVirtualMachine", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult RenameVirtualMachine(string vmId, string name)
		{
			object[] results = this.Invoke("RenameVirtualMachine", new object[] {
                        vmId,
                        name});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginRenameVirtualMachine(string vmId, string name, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("RenameVirtualMachine", new object[] {
                        vmId,
                        name}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndRenameVirtualMachine(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void RenameVirtualMachineAsync(string vmId, string name)
		{
			this.RenameVirtualMachineAsync(vmId, name, null);
		}

		/// <remarks/>
		public void RenameVirtualMachineAsync(string vmId, string name, object userState)
		{
			if ((this.RenameVirtualMachineOperationCompleted == null))
			{
				this.RenameVirtualMachineOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRenameVirtualMachineOperationCompleted);
			}
			this.InvokeAsync("RenameVirtualMachine", new object[] {
                        vmId,
                        name}, this.RenameVirtualMachineOperationCompleted, userState);
		}

		private void OnRenameVirtualMachineOperationCompleted(object arg)
		{
			if ((this.RenameVirtualMachineCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.RenameVirtualMachineCompleted(this, new RenameVirtualMachineCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteVirtualMachine", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult DeleteVirtualMachine(string vmId)
		{
			object[] results = this.Invoke("DeleteVirtualMachine", new object[] {
                        vmId});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginDeleteVirtualMachine(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("DeleteVirtualMachine", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndDeleteVirtualMachine(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void DeleteVirtualMachineAsync(string vmId)
		{
			this.DeleteVirtualMachineAsync(vmId, null);
		}

		/// <remarks/>
		public void DeleteVirtualMachineAsync(string vmId, object userState)
		{
			if ((this.DeleteVirtualMachineOperationCompleted == null))
			{
				this.DeleteVirtualMachineOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteVirtualMachineOperationCompleted);
			}
			this.InvokeAsync("DeleteVirtualMachine", new object[] {
                        vmId}, this.DeleteVirtualMachineOperationCompleted, userState);
		}

		private void OnDeleteVirtualMachineOperationCompleted(object arg)
		{
			if ((this.DeleteVirtualMachineCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.DeleteVirtualMachineCompleted(this, new DeleteVirtualMachineCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualMachineSnapshots", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualMachineSnapshot[] GetVirtualMachineSnapshots(string vmId)
		{
			object[] results = this.Invoke("GetVirtualMachineSnapshots", new object[] {
                        vmId});
			return ((VirtualMachineSnapshot[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualMachineSnapshots(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualMachineSnapshots", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public VirtualMachineSnapshot[] EndGetVirtualMachineSnapshots(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualMachineSnapshot[])(results[0]));
		}

		/// <remarks/>
		public void GetVirtualMachineSnapshotsAsync(string vmId)
		{
			this.GetVirtualMachineSnapshotsAsync(vmId, null);
		}

		/// <remarks/>
		public void GetVirtualMachineSnapshotsAsync(string vmId, object userState)
		{
			if ((this.GetVirtualMachineSnapshotsOperationCompleted == null))
			{
				this.GetVirtualMachineSnapshotsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualMachineSnapshotsOperationCompleted);
			}
			this.InvokeAsync("GetVirtualMachineSnapshots", new object[] {
                        vmId}, this.GetVirtualMachineSnapshotsOperationCompleted, userState);
		}

		private void OnGetVirtualMachineSnapshotsOperationCompleted(object arg)
		{
			if ((this.GetVirtualMachineSnapshotsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualMachineSnapshotsCompleted(this, new GetVirtualMachineSnapshotsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetSnapshot", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualMachineSnapshot GetSnapshot(string snapshotId)
		{
			object[] results = this.Invoke("GetSnapshot", new object[] {
                        snapshotId});
			return ((VirtualMachineSnapshot)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetSnapshot(string snapshotId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetSnapshot", new object[] {
                        snapshotId}, callback, asyncState);
		}

		/// <remarks/>
		public VirtualMachineSnapshot EndGetSnapshot(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualMachineSnapshot)(results[0]));
		}

		/// <remarks/>
		public void GetSnapshotAsync(string snapshotId)
		{
			this.GetSnapshotAsync(snapshotId, null);
		}

		/// <remarks/>
		public void GetSnapshotAsync(string snapshotId, object userState)
		{
			if ((this.GetSnapshotOperationCompleted == null))
			{
				this.GetSnapshotOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSnapshotOperationCompleted);
			}
			this.InvokeAsync("GetSnapshot", new object[] {
                        snapshotId}, this.GetSnapshotOperationCompleted, userState);
		}

		private void OnGetSnapshotOperationCompleted(object arg)
		{
			if ((this.GetSnapshotCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetSnapshotCompleted(this, new GetSnapshotCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateSnapshot", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult CreateSnapshot(string vmId)
		{
			object[] results = this.Invoke("CreateSnapshot", new object[] {
                        vmId});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginCreateSnapshot(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("CreateSnapshot", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndCreateSnapshot(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void CreateSnapshotAsync(string vmId)
		{
			this.CreateSnapshotAsync(vmId, null);
		}

		/// <remarks/>
		public void CreateSnapshotAsync(string vmId, object userState)
		{
			if ((this.CreateSnapshotOperationCompleted == null))
			{
				this.CreateSnapshotOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateSnapshotOperationCompleted);
			}
			this.InvokeAsync("CreateSnapshot", new object[] {
                        vmId}, this.CreateSnapshotOperationCompleted, userState);
		}

		private void OnCreateSnapshotOperationCompleted(object arg)
		{
			if ((this.CreateSnapshotCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.CreateSnapshotCompleted(this, new CreateSnapshotCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/RenameSnapshot", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult RenameSnapshot(string vmId, string snapshotId, string name)
		{
			object[] results = this.Invoke("RenameSnapshot", new object[] {
                        vmId,
                        snapshotId,
                        name});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginRenameSnapshot(string vmId, string snapshotId, string name, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("RenameSnapshot", new object[] {
                        vmId,
                        snapshotId,
                        name}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndRenameSnapshot(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void RenameSnapshotAsync(string vmId, string snapshotId, string name)
		{
			this.RenameSnapshotAsync(vmId, snapshotId, name, null);
		}

		/// <remarks/>
		public void RenameSnapshotAsync(string vmId, string snapshotId, string name, object userState)
		{
			if ((this.RenameSnapshotOperationCompleted == null))
			{
				this.RenameSnapshotOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRenameSnapshotOperationCompleted);
			}
			this.InvokeAsync("RenameSnapshot", new object[] {
                        vmId,
                        snapshotId,
                        name}, this.RenameSnapshotOperationCompleted, userState);
		}

		private void OnRenameSnapshotOperationCompleted(object arg)
		{
			if ((this.RenameSnapshotCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.RenameSnapshotCompleted(this, new RenameSnapshotCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ApplySnapshot", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult ApplySnapshot(string vmId, string snapshotId)
		{
			object[] results = this.Invoke("ApplySnapshot", new object[] {
                        vmId,
                        snapshotId});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginApplySnapshot(string vmId, string snapshotId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ApplySnapshot", new object[] {
                        vmId,
                        snapshotId}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndApplySnapshot(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void ApplySnapshotAsync(string vmId, string snapshotId)
		{
			this.ApplySnapshotAsync(vmId, snapshotId, null);
		}

		/// <remarks/>
		public void ApplySnapshotAsync(string vmId, string snapshotId, object userState)
		{
			if ((this.ApplySnapshotOperationCompleted == null))
			{
				this.ApplySnapshotOperationCompleted = new System.Threading.SendOrPostCallback(this.OnApplySnapshotOperationCompleted);
			}
			this.InvokeAsync("ApplySnapshot", new object[] {
                        vmId,
                        snapshotId}, this.ApplySnapshotOperationCompleted, userState);
		}

		private void OnApplySnapshotOperationCompleted(object arg)
		{
			if ((this.ApplySnapshotCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ApplySnapshotCompleted(this, new ApplySnapshotCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteSnapshot", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult DeleteSnapshot(string vmId, string snapshotId)
		{
			object[] results = this.Invoke("DeleteSnapshot", new object[] {
                        vmId,
                        snapshotId});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginDeleteSnapshot(string vmId, string snapshotId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("DeleteSnapshot", new object[] {
                        vmId,
                        snapshotId}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndDeleteSnapshot(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void DeleteSnapshotAsync(string vmId, string snapshotId)
		{
			this.DeleteSnapshotAsync(vmId, snapshotId, null);
		}

		/// <remarks/>
		public void DeleteSnapshotAsync(string vmId, string snapshotId, object userState)
		{
			if ((this.DeleteSnapshotOperationCompleted == null))
			{
				this.DeleteSnapshotOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteSnapshotOperationCompleted);
			}
			this.InvokeAsync("DeleteSnapshot", new object[] {
                        vmId,
                        snapshotId}, this.DeleteSnapshotOperationCompleted, userState);
		}

		private void OnDeleteSnapshotOperationCompleted(object arg)
		{
			if ((this.DeleteSnapshotCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.DeleteSnapshotCompleted(this, new DeleteSnapshotCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteSnapshotSubtree", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult DeleteSnapshotSubtree(string snapshotId)
		{
			object[] results = this.Invoke("DeleteSnapshotSubtree", new object[] {
                        snapshotId});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginDeleteSnapshotSubtree(string snapshotId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("DeleteSnapshotSubtree", new object[] {
                        snapshotId}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndDeleteSnapshotSubtree(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void DeleteSnapshotSubtreeAsync(string snapshotId)
		{
			this.DeleteSnapshotSubtreeAsync(snapshotId, null);
		}

		/// <remarks/>
		public void DeleteSnapshotSubtreeAsync(string snapshotId, object userState)
		{
			if ((this.DeleteSnapshotSubtreeOperationCompleted == null))
			{
				this.DeleteSnapshotSubtreeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteSnapshotSubtreeOperationCompleted);
			}
			this.InvokeAsync("DeleteSnapshotSubtree", new object[] {
                        snapshotId}, this.DeleteSnapshotSubtreeOperationCompleted, userState);
		}

		private void OnDeleteSnapshotSubtreeOperationCompleted(object arg)
		{
			if ((this.DeleteSnapshotSubtreeCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.DeleteSnapshotSubtreeCompleted(this, new DeleteSnapshotSubtreeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetSnapshotThumbnailImage", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return: System.Xml.Serialization.XmlElementAttribute(DataType = "base64Binary")]
		public byte[] GetSnapshotThumbnailImage(string snapshotId, ThumbnailSize size)
		{
			object[] results = this.Invoke("GetSnapshotThumbnailImage", new object[] {
                        snapshotId,
                        size});
			return ((byte[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetSnapshotThumbnailImage(string snapshotId, ThumbnailSize size, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetSnapshotThumbnailImage", new object[] {
                        snapshotId,
                        size}, callback, asyncState);
		}

		/// <remarks/>
		public byte[] EndGetSnapshotThumbnailImage(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((byte[])(results[0]));
		}

		/// <remarks/>
		public void GetSnapshotThumbnailImageAsync(string snapshotId, ThumbnailSize size)
		{
			this.GetSnapshotThumbnailImageAsync(snapshotId, size, null);
		}

		/// <remarks/>
		public void GetSnapshotThumbnailImageAsync(string snapshotId, ThumbnailSize size, object userState)
		{
			if ((this.GetSnapshotThumbnailImageOperationCompleted == null))
			{
				this.GetSnapshotThumbnailImageOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSnapshotThumbnailImageOperationCompleted);
			}
			this.InvokeAsync("GetSnapshotThumbnailImage", new object[] {
                        snapshotId,
                        size}, this.GetSnapshotThumbnailImageOperationCompleted, userState);
		}

		private void OnGetSnapshotThumbnailImageOperationCompleted(object arg)
		{
			if ((this.GetSnapshotThumbnailImageCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetSnapshotThumbnailImageCompleted(this, new GetSnapshotThumbnailImageCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetExternalSwitches", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualSwitch[] GetExternalSwitches(string computerName)
		{
			object[] results = this.Invoke("GetExternalSwitches", new object[] {
                        computerName});
			return ((VirtualSwitch[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetExternalSwitches(string computerName, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetExternalSwitches", new object[] {
                        computerName}, callback, asyncState);
		}

		/// <remarks/>
		public VirtualSwitch[] EndGetExternalSwitches(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualSwitch[])(results[0]));
		}

		/// <remarks/>
		public void GetExternalSwitchesAsync(string computerName)
		{
			this.GetExternalSwitchesAsync(computerName, null);
		}

		/// <remarks/>
		public void GetExternalSwitchesAsync(string computerName, object userState)
		{
			if ((this.GetExternalSwitchesOperationCompleted == null))
			{
				this.GetExternalSwitchesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetExternalSwitchesOperationCompleted);
			}
			this.InvokeAsync("GetExternalSwitches", new object[] {
                        computerName}, this.GetExternalSwitchesOperationCompleted, userState);
		}

		private void OnGetExternalSwitchesOperationCompleted(object arg)
		{
			if ((this.GetExternalSwitchesCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetExternalSwitchesCompleted(this, new GetExternalSwitchesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetSwitches", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualSwitch[] GetSwitches()
		{
			object[] results = this.Invoke("GetSwitches", new object[0]);
			return ((VirtualSwitch[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetSwitches(System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetSwitches", new object[0], callback, asyncState);
		}

		/// <remarks/>
		public VirtualSwitch[] EndGetSwitches(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualSwitch[])(results[0]));
		}

		/// <remarks/>
		public void GetSwitchesAsync()
		{
			this.GetSwitchesAsync(null);
		}

		/// <remarks/>
		public void GetSwitchesAsync(object userState)
		{
			if ((this.GetSwitchesOperationCompleted == null))
			{
				this.GetSwitchesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSwitchesOperationCompleted);
			}
			this.InvokeAsync("GetSwitches", new object[0], this.GetSwitchesOperationCompleted, userState);
		}

		private void OnGetSwitchesOperationCompleted(object arg)
		{
			if ((this.GetSwitchesCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetSwitchesCompleted(this, new GetSwitchesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/SwitchExists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public bool SwitchExists(string switchId)
		{
			object[] results = this.Invoke("SwitchExists", new object[] {
                        switchId});
			return ((bool)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginSwitchExists(string switchId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("SwitchExists", new object[] {
                        switchId}, callback, asyncState);
		}

		/// <remarks/>
		public bool EndSwitchExists(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((bool)(results[0]));
		}

		/// <remarks/>
		public void SwitchExistsAsync(string switchId)
		{
			this.SwitchExistsAsync(switchId, null);
		}

		/// <remarks/>
		public void SwitchExistsAsync(string switchId, object userState)
		{
			if ((this.SwitchExistsOperationCompleted == null))
			{
				this.SwitchExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSwitchExistsOperationCompleted);
			}
			this.InvokeAsync("SwitchExists", new object[] {
                        switchId}, this.SwitchExistsOperationCompleted, userState);
		}

		private void OnSwitchExistsOperationCompleted(object arg)
		{
			if ((this.SwitchExistsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.SwitchExistsCompleted(this, new SwitchExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateSwitch", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualSwitch CreateSwitch(string name)
		{
			object[] results = this.Invoke("CreateSwitch", new object[] {
                        name});
			return ((VirtualSwitch)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginCreateSwitch(string name, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("CreateSwitch", new object[] {
                        name}, callback, asyncState);
		}

		/// <remarks/>
		public VirtualSwitch EndCreateSwitch(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualSwitch)(results[0]));
		}

		/// <remarks/>
		public void CreateSwitchAsync(string name)
		{
			this.CreateSwitchAsync(name, null);
		}

		/// <remarks/>
		public void CreateSwitchAsync(string name, object userState)
		{
			if ((this.CreateSwitchOperationCompleted == null))
			{
				this.CreateSwitchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateSwitchOperationCompleted);
			}
			this.InvokeAsync("CreateSwitch", new object[] {
                        name}, this.CreateSwitchOperationCompleted, userState);
		}

		private void OnCreateSwitchOperationCompleted(object arg)
		{
			if ((this.CreateSwitchCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.CreateSwitchCompleted(this, new CreateSwitchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteSwitch", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ReturnCode DeleteSwitch(string switchId)
		{
			object[] results = this.Invoke("DeleteSwitch", new object[] {
                        switchId});
			return ((ReturnCode)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginDeleteSwitch(string switchId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("DeleteSwitch", new object[] {
                        switchId}, callback, asyncState);
		}

		/// <remarks/>
		public ReturnCode EndDeleteSwitch(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ReturnCode)(results[0]));
		}

		/// <remarks/>
		public void DeleteSwitchAsync(string switchId)
		{
			this.DeleteSwitchAsync(switchId, null);
		}

		/// <remarks/>
		public void DeleteSwitchAsync(string switchId, object userState)
		{
			if ((this.DeleteSwitchOperationCompleted == null))
			{
				this.DeleteSwitchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteSwitchOperationCompleted);
			}
			this.InvokeAsync("DeleteSwitch", new object[] {
                        switchId}, this.DeleteSwitchOperationCompleted, userState);
		}

		private void OnDeleteSwitchOperationCompleted(object arg)
		{
			if ((this.DeleteSwitchCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.DeleteSwitchCompleted(this, new DeleteSwitchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetInsertedDVD", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public string GetInsertedDVD(string vmId)
		{
			object[] results = this.Invoke("GetInsertedDVD", new object[] {
                        vmId});
			return ((string)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetInsertedDVD(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetInsertedDVD", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public string EndGetInsertedDVD(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((string)(results[0]));
		}

		/// <remarks/>
		public void GetInsertedDVDAsync(string vmId)
		{
			this.GetInsertedDVDAsync(vmId, null);
		}

		/// <remarks/>
		public void GetInsertedDVDAsync(string vmId, object userState)
		{
			if ((this.GetInsertedDVDOperationCompleted == null))
			{
				this.GetInsertedDVDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetInsertedDVDOperationCompleted);
			}
			this.InvokeAsync("GetInsertedDVD", new object[] {
                        vmId}, this.GetInsertedDVDOperationCompleted, userState);
		}

		private void OnGetInsertedDVDOperationCompleted(object arg)
		{
			if ((this.GetInsertedDVDCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetInsertedDVDCompleted(this, new GetInsertedDVDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/InsertDVD", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult InsertDVD(string vmId, string isoPath)
		{
			object[] results = this.Invoke("InsertDVD", new object[] {
                        vmId,
                        isoPath});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginInsertDVD(string vmId, string isoPath, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("InsertDVD", new object[] {
                        vmId,
                        isoPath}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndInsertDVD(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void InsertDVDAsync(string vmId, string isoPath)
		{
			this.InsertDVDAsync(vmId, isoPath, null);
		}

		/// <remarks/>
		public void InsertDVDAsync(string vmId, string isoPath, object userState)
		{
			if ((this.InsertDVDOperationCompleted == null))
			{
				this.InsertDVDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnInsertDVDOperationCompleted);
			}
			this.InvokeAsync("InsertDVD", new object[] {
                        vmId,
                        isoPath}, this.InsertDVDOperationCompleted, userState);
		}

		private void OnInsertDVDOperationCompleted(object arg)
		{
			if ((this.InsertDVDCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.InsertDVDCompleted(this, new InsertDVDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/EjectDVD", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult EjectDVD(string vmId)
		{
			object[] results = this.Invoke("EjectDVD", new object[] {
                        vmId});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginEjectDVD(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("EjectDVD", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndEjectDVD(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void EjectDVDAsync(string vmId)
		{
			this.EjectDVDAsync(vmId, null);
		}

		/// <remarks/>
		public void EjectDVDAsync(string vmId, object userState)
		{
			if ((this.EjectDVDOperationCompleted == null))
			{
				this.EjectDVDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEjectDVDOperationCompleted);
			}
			this.InvokeAsync("EjectDVD", new object[] {
                        vmId}, this.EjectDVDOperationCompleted, userState);
		}

		private void OnEjectDVDOperationCompleted(object arg)
		{
			if ((this.EjectDVDCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.EjectDVDCompleted(this, new EjectDVDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetLibraryItems", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public LibraryItem[] GetLibraryItems(string path)
		{
			object[] results = this.Invoke("GetLibraryItems", new object[] {
                        path});
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetLibraryItems(string path, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetLibraryItems", new object[] {
                        path}, callback, asyncState);
		}

		/// <remarks/>
		public LibraryItem[] EndGetLibraryItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public void GetLibraryItemsAsync(string path)
		{
			this.GetLibraryItemsAsync(path, null);
		}

		/// <remarks/>
		public void GetLibraryItemsAsync(string path, object userState)
		{
			if ((this.GetLibraryItemsOperationCompleted == null))
			{
				this.GetLibraryItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetLibraryItemsOperationCompleted);
			}
			this.InvokeAsync("GetLibraryItems", new object[] {
                        path}, this.GetLibraryItemsOperationCompleted, userState);
		}

		private void OnGetLibraryItemsOperationCompleted(object arg)
		{
			if ((this.GetLibraryItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetLibraryItemsCompleted(this, new GetLibraryItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetOSLibraryItems", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public LibraryItem[] GetOSLibraryItems()
		{
			object[] results = this.Invoke("GetOSLibraryItems", new object[0]);
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetOSLibraryItems(System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetOSLibraryItems", new object[0], callback, asyncState);
		}

		/// <remarks/>
		public LibraryItem[] EndGetOSLibraryItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public void GetOSLibraryItemsAsync()
		{
			this.GetOSLibraryItemsAsync(null);
		}

		/// <remarks/>
		public void GetOSLibraryItemsAsync(object userState)
		{
			if ((this.GetOSLibraryItemsOperationCompleted == null))
			{
				this.GetOSLibraryItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetOSLibraryItemsOperationCompleted);
			}
			this.InvokeAsync("GetOSLibraryItems", new object[0], this.GetOSLibraryItemsOperationCompleted, userState);
		}

		private void OnGetOSLibraryItemsOperationCompleted(object arg)
		{
			if ((this.GetOSLibraryItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetOSLibraryItemsCompleted(this, new GetOSLibraryItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetHosts", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public LibraryItem[] GetHosts()
		{
			object[] results = this.Invoke("GetHosts", new object[0]);
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetHosts(System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetHosts", new object[0], callback, asyncState);
		}

		/// <remarks/>
		public LibraryItem[] EndGetHosts(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public void GetHostsAsync()
		{
			this.GetHostsAsync(null);
		}

		/// <remarks/>
		public void GetHostsAsync(object userState)
		{
			if ((this.GetHostsOperationCompleted == null))
			{
				this.GetHostsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostsOperationCompleted);
			}
			this.InvokeAsync("GetHosts", new object[0], this.GetHostsOperationCompleted, userState);
		}

		private void OnGetHostsOperationCompleted(object arg)
		{
			if ((this.GetHostsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetHostsCompleted(this, new GetHostsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetClusters", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public LibraryItem[] GetClusters()
		{
			object[] results = this.Invoke("GetClusters", new object[0]);
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetClusters(System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetClusters", new object[0], callback, asyncState);
		}

		/// <remarks/>
		public LibraryItem[] EndGetClusters(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((LibraryItem[])(results[0]));
		}

		/// <remarks/>
		public void GetClustersAsync()
		{
			this.GetClustersAsync(null);
		}

		/// <remarks/>
		public void GetClustersAsync(object userState)
		{
			if ((this.GetClustersOperationCompleted == null))
			{
				this.GetClustersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetClustersOperationCompleted);
			}
			this.InvokeAsync("GetClusters", new object[0], this.GetClustersOperationCompleted, userState);
		}

		private void OnGetClustersOperationCompleted(object arg)
		{
			if ((this.GetClustersCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetClustersCompleted(this, new GetClustersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetKVPItems", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public KvpExchangeDataItem[] GetKVPItems(string vmId)
		{
			object[] results = this.Invoke("GetKVPItems", new object[] {
                        vmId});
			return ((KvpExchangeDataItem[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetKVPItems(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetKVPItems", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public KvpExchangeDataItem[] EndGetKVPItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((KvpExchangeDataItem[])(results[0]));
		}

		/// <remarks/>
		public void GetKVPItemsAsync(string vmId)
		{
			this.GetKVPItemsAsync(vmId, null);
		}

		/// <remarks/>
		public void GetKVPItemsAsync(string vmId, object userState)
		{
			if ((this.GetKVPItemsOperationCompleted == null))
			{
				this.GetKVPItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetKVPItemsOperationCompleted);
			}
			this.InvokeAsync("GetKVPItems", new object[] {
                        vmId}, this.GetKVPItemsOperationCompleted, userState);
		}

		private void OnGetKVPItemsOperationCompleted(object arg)
		{
			if ((this.GetKVPItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetKVPItemsCompleted(this, new GetKVPItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetStandardKVPItems", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public KvpExchangeDataItem[] GetStandardKVPItems(string vmId)
		{
			object[] results = this.Invoke("GetStandardKVPItems", new object[] {
                        vmId});
			return ((KvpExchangeDataItem[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetStandardKVPItems(string vmId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetStandardKVPItems", new object[] {
                        vmId}, callback, asyncState);
		}

		/// <remarks/>
		public KvpExchangeDataItem[] EndGetStandardKVPItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((KvpExchangeDataItem[])(results[0]));
		}

		/// <remarks/>
		public void GetStandardKVPItemsAsync(string vmId)
		{
			this.GetStandardKVPItemsAsync(vmId, null);
		}

		/// <remarks/>
		public void GetStandardKVPItemsAsync(string vmId, object userState)
		{
			if ((this.GetStandardKVPItemsOperationCompleted == null))
			{
				this.GetStandardKVPItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStandardKVPItemsOperationCompleted);
			}
			this.InvokeAsync("GetStandardKVPItems", new object[] {
                        vmId}, this.GetStandardKVPItemsOperationCompleted, userState);
		}

		private void OnGetStandardKVPItemsOperationCompleted(object arg)
		{
			if ((this.GetStandardKVPItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetStandardKVPItemsCompleted(this, new GetStandardKVPItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/AddKVPItems", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult AddKVPItems(string vmId, KvpExchangeDataItem[] items)
		{
			object[] results = this.Invoke("AddKVPItems", new object[] {
                        vmId,
                        items});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginAddKVPItems(string vmId, KvpExchangeDataItem[] items, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("AddKVPItems", new object[] {
                        vmId,
                        items}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndAddKVPItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void AddKVPItemsAsync(string vmId, KvpExchangeDataItem[] items)
		{
			this.AddKVPItemsAsync(vmId, items, null);
		}

		/// <remarks/>
		public void AddKVPItemsAsync(string vmId, KvpExchangeDataItem[] items, object userState)
		{
			if ((this.AddKVPItemsOperationCompleted == null))
			{
				this.AddKVPItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddKVPItemsOperationCompleted);
			}
			this.InvokeAsync("AddKVPItems", new object[] {
                        vmId,
                        items}, this.AddKVPItemsOperationCompleted, userState);
		}

		private void OnAddKVPItemsOperationCompleted(object arg)
		{
			if ((this.AddKVPItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.AddKVPItemsCompleted(this, new AddKVPItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/RemoveKVPItems", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult RemoveKVPItems(string vmId, string[] itemNames)
		{
			object[] results = this.Invoke("RemoveKVPItems", new object[] {
                        vmId,
                        itemNames});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginRemoveKVPItems(string vmId, string[] itemNames, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("RemoveKVPItems", new object[] {
                        vmId,
                        itemNames}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndRemoveKVPItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void RemoveKVPItemsAsync(string vmId, string[] itemNames)
		{
			this.RemoveKVPItemsAsync(vmId, itemNames, null);
		}

		/// <remarks/>
		public void RemoveKVPItemsAsync(string vmId, string[] itemNames, object userState)
		{
			if ((this.RemoveKVPItemsOperationCompleted == null))
			{
				this.RemoveKVPItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRemoveKVPItemsOperationCompleted);
			}
			this.InvokeAsync("RemoveKVPItems", new object[] {
                        vmId,
                        itemNames}, this.RemoveKVPItemsOperationCompleted, userState);
		}

		private void OnRemoveKVPItemsOperationCompleted(object arg)
		{
			if ((this.RemoveKVPItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.RemoveKVPItemsCompleted(this, new RemoveKVPItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ModifyKVPItems", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult ModifyKVPItems(string vmId, KvpExchangeDataItem[] items)
		{
			object[] results = this.Invoke("ModifyKVPItems", new object[] {
                        vmId,
                        items});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginModifyKVPItems(string vmId, KvpExchangeDataItem[] items, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ModifyKVPItems", new object[] {
                        vmId,
                        items}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndModifyKVPItems(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void ModifyKVPItemsAsync(string vmId, KvpExchangeDataItem[] items)
		{
			this.ModifyKVPItemsAsync(vmId, items, null);
		}

		/// <remarks/>
		public void ModifyKVPItemsAsync(string vmId, KvpExchangeDataItem[] items, object userState)
		{
			if ((this.ModifyKVPItemsOperationCompleted == null))
			{
				this.ModifyKVPItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnModifyKVPItemsOperationCompleted);
			}
			this.InvokeAsync("ModifyKVPItems", new object[] {
                        vmId,
                        items}, this.ModifyKVPItemsOperationCompleted, userState);
		}

		private void OnModifyKVPItemsOperationCompleted(object arg)
		{
			if ((this.ModifyKVPItemsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ModifyKVPItemsCompleted(this, new ModifyKVPItemsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualHardDiskInfo", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualHardDiskInfo GetVirtualHardDiskInfo(string vhdPath)
		{
			object[] results = this.Invoke("GetVirtualHardDiskInfo", new object[] {
                        vhdPath});
			return ((VirtualHardDiskInfo)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualHardDiskInfo(string vhdPath, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualHardDiskInfo", new object[] {
                        vhdPath}, callback, asyncState);
		}

		/// <remarks/>
		public VirtualHardDiskInfo EndGetVirtualHardDiskInfo(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualHardDiskInfo)(results[0]));
		}

		/// <remarks/>
		public void GetVirtualHardDiskInfoAsync(string vhdPath)
		{
			this.GetVirtualHardDiskInfoAsync(vhdPath, null);
		}

		/// <remarks/>
		public void GetVirtualHardDiskInfoAsync(string vhdPath, object userState)
		{
			if ((this.GetVirtualHardDiskInfoOperationCompleted == null))
			{
				this.GetVirtualHardDiskInfoOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualHardDiskInfoOperationCompleted);
			}
			this.InvokeAsync("GetVirtualHardDiskInfo", new object[] {
                        vhdPath}, this.GetVirtualHardDiskInfoOperationCompleted, userState);
		}

		private void OnGetVirtualHardDiskInfoOperationCompleted(object arg)
		{
			if ((this.GetVirtualHardDiskInfoCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualHardDiskInfoCompleted(this, new GetVirtualHardDiskInfoCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/MountVirtualHardDisk", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public MountedDiskInfo MountVirtualHardDisk(string vhdPath)
		{
			object[] results = this.Invoke("MountVirtualHardDisk", new object[] {
                        vhdPath});
			return ((MountedDiskInfo)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginMountVirtualHardDisk(string vhdPath, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("MountVirtualHardDisk", new object[] {
                        vhdPath}, callback, asyncState);
		}

		/// <remarks/>
		public MountedDiskInfo EndMountVirtualHardDisk(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((MountedDiskInfo)(results[0]));
		}

		/// <remarks/>
		public void MountVirtualHardDiskAsync(string vhdPath)
		{
			this.MountVirtualHardDiskAsync(vhdPath, null);
		}

		/// <remarks/>
		public void MountVirtualHardDiskAsync(string vhdPath, object userState)
		{
			if ((this.MountVirtualHardDiskOperationCompleted == null))
			{
				this.MountVirtualHardDiskOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMountVirtualHardDiskOperationCompleted);
			}
			this.InvokeAsync("MountVirtualHardDisk", new object[] {
                        vhdPath}, this.MountVirtualHardDiskOperationCompleted, userState);
		}

		private void OnMountVirtualHardDiskOperationCompleted(object arg)
		{
			if ((this.MountVirtualHardDiskCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.MountVirtualHardDiskCompleted(this, new MountVirtualHardDiskCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UnmountVirtualHardDisk", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ReturnCode UnmountVirtualHardDisk(string vhdPath)
		{
			object[] results = this.Invoke("UnmountVirtualHardDisk", new object[] {
                        vhdPath});
			return ((ReturnCode)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginUnmountVirtualHardDisk(string vhdPath, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("UnmountVirtualHardDisk", new object[] {
                        vhdPath}, callback, asyncState);
		}

		/// <remarks/>
		public ReturnCode EndUnmountVirtualHardDisk(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ReturnCode)(results[0]));
		}

		/// <remarks/>
		public void UnmountVirtualHardDiskAsync(string vhdPath)
		{
			this.UnmountVirtualHardDiskAsync(vhdPath, null);
		}

		/// <remarks/>
		public void UnmountVirtualHardDiskAsync(string vhdPath, object userState)
		{
			if ((this.UnmountVirtualHardDiskOperationCompleted == null))
			{
				this.UnmountVirtualHardDiskOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUnmountVirtualHardDiskOperationCompleted);
			}
			this.InvokeAsync("UnmountVirtualHardDisk", new object[] {
                        vhdPath}, this.UnmountVirtualHardDiskOperationCompleted, userState);
		}

		private void OnUnmountVirtualHardDiskOperationCompleted(object arg)
		{
			if ((this.UnmountVirtualHardDiskCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.UnmountVirtualHardDiskCompleted(this, new UnmountVirtualHardDiskCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ExpandVirtualHardDisk", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult ExpandVirtualHardDisk(string vhdPath, ulong sizeGB)
		{
			object[] results = this.Invoke("ExpandVirtualHardDisk", new object[] {
                        vhdPath,
                        sizeGB});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginExpandVirtualHardDisk(string vhdPath, ulong sizeGB, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ExpandVirtualHardDisk", new object[] {
                        vhdPath,
                        sizeGB}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndExpandVirtualHardDisk(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void ExpandVirtualHardDiskAsync(string vhdPath, ulong sizeGB)
		{
			this.ExpandVirtualHardDiskAsync(vhdPath, sizeGB, null);
		}

		/// <remarks/>
		public void ExpandVirtualHardDiskAsync(string vhdPath, ulong sizeGB, object userState)
		{
			if ((this.ExpandVirtualHardDiskOperationCompleted == null))
			{
				this.ExpandVirtualHardDiskOperationCompleted = new System.Threading.SendOrPostCallback(this.OnExpandVirtualHardDiskOperationCompleted);
			}
			this.InvokeAsync("ExpandVirtualHardDisk", new object[] {
                        vhdPath,
                        sizeGB}, this.ExpandVirtualHardDiskOperationCompleted, userState);
		}

		private void OnExpandVirtualHardDiskOperationCompleted(object arg)
		{
			if ((this.ExpandVirtualHardDiskCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ExpandVirtualHardDiskCompleted(this, new ExpandVirtualHardDiskCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ConvertVirtualHardDisk", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public JobResult ConvertVirtualHardDisk(string sourcePath, string destinationPath, VirtualHardDiskType diskType)
		{
			object[] results = this.Invoke("ConvertVirtualHardDisk", new object[] {
                        sourcePath,
                        destinationPath,
                        diskType});
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginConvertVirtualHardDisk(string sourcePath, string destinationPath, VirtualHardDiskType diskType, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ConvertVirtualHardDisk", new object[] {
                        sourcePath,
                        destinationPath,
                        diskType}, callback, asyncState);
		}

		/// <remarks/>
		public JobResult EndConvertVirtualHardDisk(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((JobResult)(results[0]));
		}

		/// <remarks/>
		public void ConvertVirtualHardDiskAsync(string sourcePath, string destinationPath, VirtualHardDiskType diskType)
		{
			this.ConvertVirtualHardDiskAsync(sourcePath, destinationPath, diskType, null);
		}

		/// <remarks/>
		public void ConvertVirtualHardDiskAsync(string sourcePath, string destinationPath, VirtualHardDiskType diskType, object userState)
		{
			if ((this.ConvertVirtualHardDiskOperationCompleted == null))
			{
				this.ConvertVirtualHardDiskOperationCompleted = new System.Threading.SendOrPostCallback(this.OnConvertVirtualHardDiskOperationCompleted);
			}
			this.InvokeAsync("ConvertVirtualHardDisk", new object[] {
                        sourcePath,
                        destinationPath,
                        diskType}, this.ConvertVirtualHardDiskOperationCompleted, userState);
		}

		private void OnConvertVirtualHardDiskOperationCompleted(object arg)
		{
			if ((this.ConvertVirtualHardDiskCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ConvertVirtualHardDiskCompleted(this, new ConvertVirtualHardDiskCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteRemoteFile", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public void DeleteRemoteFile(string path)
		{
			this.Invoke("DeleteRemoteFile", new object[] {
                        path});
		}

		/// <remarks/>
		public System.IAsyncResult BeginDeleteRemoteFile(string path, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("DeleteRemoteFile", new object[] {
                        path}, callback, asyncState);
		}

		/// <remarks/>
		public void EndDeleteRemoteFile(System.IAsyncResult asyncResult)
		{
			this.EndInvoke(asyncResult);
		}

		/// <remarks/>
		public void DeleteRemoteFileAsync(string path)
		{
			this.DeleteRemoteFileAsync(path, null);
		}

		/// <remarks/>
		public void DeleteRemoteFileAsync(string path, object userState)
		{
			if ((this.DeleteRemoteFileOperationCompleted == null))
			{
				this.DeleteRemoteFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteRemoteFileOperationCompleted);
			}
			this.InvokeAsync("DeleteRemoteFile", new object[] {
                        path}, this.DeleteRemoteFileOperationCompleted, userState);
		}

		private void OnDeleteRemoteFileOperationCompleted(object arg)
		{
			if ((this.DeleteRemoteFileCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.DeleteRemoteFileCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ExpandDiskVolume", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public void ExpandDiskVolume(string diskAddress, string volumeName)
		{
			this.Invoke("ExpandDiskVolume", new object[] {
                        diskAddress,
                        volumeName});
		}

		/// <remarks/>
		public System.IAsyncResult BeginExpandDiskVolume(string diskAddress, string volumeName, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ExpandDiskVolume", new object[] {
                        diskAddress,
                        volumeName}, callback, asyncState);
		}

		/// <remarks/>
		public void EndExpandDiskVolume(System.IAsyncResult asyncResult)
		{
			this.EndInvoke(asyncResult);
		}

		/// <remarks/>
		public void ExpandDiskVolumeAsync(string diskAddress, string volumeName)
		{
			this.ExpandDiskVolumeAsync(diskAddress, volumeName, null);
		}

		/// <remarks/>
		public void ExpandDiskVolumeAsync(string diskAddress, string volumeName, object userState)
		{
			if ((this.ExpandDiskVolumeOperationCompleted == null))
			{
				this.ExpandDiskVolumeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnExpandDiskVolumeOperationCompleted);
			}
			this.InvokeAsync("ExpandDiskVolume", new object[] {
                        diskAddress,
                        volumeName}, this.ExpandDiskVolumeOperationCompleted, userState);
		}

		private void OnExpandDiskVolumeOperationCompleted(object arg)
		{
			if ((this.ExpandDiskVolumeCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ExpandDiskVolumeCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ReadRemoteFile", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public string ReadRemoteFile(string path)
		{
			object[] results = this.Invoke("ReadRemoteFile", new object[] {
                        path});
			return ((string)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginReadRemoteFile(string path, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ReadRemoteFile", new object[] {
                        path}, callback, asyncState);
		}

		/// <remarks/>
		public string EndReadRemoteFile(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((string)(results[0]));
		}

		/// <remarks/>
		public void ReadRemoteFileAsync(string path)
		{
			this.ReadRemoteFileAsync(path, null);
		}

		/// <remarks/>
		public void ReadRemoteFileAsync(string path, object userState)
		{
			if ((this.ReadRemoteFileOperationCompleted == null))
			{
				this.ReadRemoteFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnReadRemoteFileOperationCompleted);
			}
			this.InvokeAsync("ReadRemoteFile", new object[] {
                        path}, this.ReadRemoteFileOperationCompleted, userState);
		}

		private void OnReadRemoteFileOperationCompleted(object arg)
		{
			if ((this.ReadRemoteFileCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ReadRemoteFileCompleted(this, new ReadRemoteFileCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/WriteRemoteFile", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public void WriteRemoteFile(string path, string content)
		{
			this.Invoke("WriteRemoteFile", new object[] {
                        path,
                        content});
		}

		/// <remarks/>
		public System.IAsyncResult BeginWriteRemoteFile(string path, string content, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("WriteRemoteFile", new object[] {
                        path,
                        content}, callback, asyncState);
		}

		/// <remarks/>
		public void EndWriteRemoteFile(System.IAsyncResult asyncResult)
		{
			this.EndInvoke(asyncResult);
		}

		/// <remarks/>
		public void WriteRemoteFileAsync(string path, string content)
		{
			this.WriteRemoteFileAsync(path, content, null);
		}

		/// <remarks/>
		public void WriteRemoteFileAsync(string path, string content, object userState)
		{
			if ((this.WriteRemoteFileOperationCompleted == null))
			{
				this.WriteRemoteFileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnWriteRemoteFileOperationCompleted);
			}
			this.InvokeAsync("WriteRemoteFile", new object[] {
                        path,
                        content}, this.WriteRemoteFileOperationCompleted, userState);
		}

		private void OnWriteRemoteFileOperationCompleted(object arg)
		{
			if ((this.WriteRemoteFileCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.WriteRemoteFileCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetJob", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ConcreteJob GetJob(string jobId)
		{
			object[] results = this.Invoke("GetJob", new object[] {
                        jobId});
			return ((ConcreteJob)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetJob(string jobId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetJob", new object[] {
                        jobId}, callback, asyncState);
		}

		/// <remarks/>
		public ConcreteJob EndGetJob(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ConcreteJob)(results[0]));
		}

		/// <remarks/>
		public void GetJobAsync(string jobId)
		{
			this.GetJobAsync(jobId, null);
		}

		/// <remarks/>
		public void GetJobAsync(string jobId, object userState)
		{
			if ((this.GetJobOperationCompleted == null))
			{
				this.GetJobOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetJobOperationCompleted);
			}
			this.InvokeAsync("GetJob", new object[] {
                        jobId}, this.GetJobOperationCompleted, userState);
		}

		private void OnGetJobOperationCompleted(object arg)
		{
			if ((this.GetJobCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetJobCompleted(this, new GetJobCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetAllJobs", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ConcreteJob[] GetAllJobs()
		{
			object[] results = this.Invoke("GetAllJobs", new object[0]);
			return ((ConcreteJob[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetAllJobs(System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetAllJobs", new object[0], callback, asyncState);
		}

		/// <remarks/>
		public ConcreteJob[] EndGetAllJobs(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ConcreteJob[])(results[0]));
		}

		/// <remarks/>
		public void GetAllJobsAsync()
		{
			this.GetAllJobsAsync(null);
		}

		/// <remarks/>
		public void GetAllJobsAsync(object userState)
		{
			if ((this.GetAllJobsOperationCompleted == null))
			{
				this.GetAllJobsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAllJobsOperationCompleted);
			}
			this.InvokeAsync("GetAllJobs", new object[0], this.GetAllJobsOperationCompleted, userState);
		}

		private void OnGetAllJobsOperationCompleted(object arg)
		{
			if ((this.GetAllJobsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetAllJobsCompleted(this, new GetAllJobsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ChangeJobState", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public ChangeJobStateReturnCode ChangeJobState(string jobId, ConcreteJobRequestedState newState)
		{
			object[] results = this.Invoke("ChangeJobState", new object[] {
                        jobId,
                        newState});
			return ((ChangeJobStateReturnCode)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginChangeJobState(string jobId, ConcreteJobRequestedState newState, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ChangeJobState", new object[] {
                        jobId,
                        newState}, callback, asyncState);
		}

		/// <remarks/>
		public ChangeJobStateReturnCode EndChangeJobState(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((ChangeJobStateReturnCode)(results[0]));
		}

		/// <remarks/>
		public void ChangeJobStateAsync(string jobId, ConcreteJobRequestedState newState)
		{
			this.ChangeJobStateAsync(jobId, newState, null);
		}

		/// <remarks/>
		public void ChangeJobStateAsync(string jobId, ConcreteJobRequestedState newState, object userState)
		{
			if ((this.ChangeJobStateOperationCompleted == null))
			{
				this.ChangeJobStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeJobStateOperationCompleted);
			}
			this.InvokeAsync("ChangeJobState", new object[] {
                        jobId,
                        newState}, this.ChangeJobStateOperationCompleted, userState);
		}

		private void OnChangeJobStateOperationCompleted(object arg)
		{
			if ((this.ChangeJobStateCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ChangeJobStateCompleted(this, new ChangeJobStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetProcessorCoresNumber", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public int GetProcessorCoresNumber(string templateId)
		{
			object[] results = this.Invoke("GetProcessorCoresNumber", new object[] {
                        templateId});
			return ((int)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetProcessorCoresNumber(string templateId, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetProcessorCoresNumber", new object[] {
                        templateId}, callback, asyncState);
		}

		/// <remarks/>
		public int EndGetProcessorCoresNumber(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((int)(results[0]));
		}

		/// <remarks/>
		public void GetProcessorCoresNumberAsync(string templateId)
		{
			this.GetProcessorCoresNumberAsync(templateId, null);
		}

		/// <remarks/>
		public void GetProcessorCoresNumberAsync(string templateId, object userState)
		{
			if ((this.GetProcessorCoresNumberOperationCompleted == null))
			{
				this.GetProcessorCoresNumberOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProcessorCoresNumberOperationCompleted);
			}
			this.InvokeAsync("GetProcessorCoresNumber", new object[] {
                        templateId}, this.GetProcessorCoresNumberOperationCompleted, userState);
		}

		private void OnGetProcessorCoresNumberOperationCompleted(object arg)
		{
			if ((this.GetProcessorCoresNumberCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetProcessorCoresNumberCompleted(this, new GetProcessorCoresNumberCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CheckServerState", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public bool CheckServerState(VMForPCSettingsName control, string connString, string connName)
		{
			object[] results = this.Invoke("CheckServerState", new object[] {
                        control,
                        connString,
                        connName});
			return ((bool)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginCheckServerState(VMForPCSettingsName control, string connString, string connName, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("CheckServerState", new object[] {
                        control,
                        connString,
                        connName}, callback, asyncState);
		}

		/// <remarks/>
		public bool EndCheckServerState(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((bool)(results[0]));
		}

		/// <remarks/>
		public void CheckServerStateAsync(VMForPCSettingsName control, string connString, string connName)
		{
			this.CheckServerStateAsync(control, connString, connName, null);
		}

		/// <remarks/>
		public void CheckServerStateAsync(VMForPCSettingsName control, string connString, string connName, object userState)
		{
			if ((this.CheckServerStateOperationCompleted == null))
			{
				this.CheckServerStateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckServerStateOperationCompleted);
			}
			this.InvokeAsync("CheckServerState", new object[] {
                        control,
                        connString,
                        connName}, this.CheckServerStateOperationCompleted, userState);
		}

		private void OnCheckServerStateOperationCompleted(object arg)
		{
			if ((this.CheckServerStateCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.CheckServerStateCompleted(this, new CheckServerStateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetDeviceEvents", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public MonitoredObjectEvent[] GetDeviceEvents(string serviceName, string displayName)
		{
			object[] results = this.Invoke("GetDeviceEvents", new object[] {
                        serviceName,
                        displayName});
			return ((MonitoredObjectEvent[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetDeviceEvents(string serviceName, string displayName, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetDeviceEvents", new object[] {
                        serviceName,
                        displayName}, callback, asyncState);
		}

		/// <remarks/>
		public MonitoredObjectEvent[] EndGetDeviceEvents(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((MonitoredObjectEvent[])(results[0]));
		}

		/// <remarks/>
		public void GetDeviceEventsAsync(string serviceName, string displayName)
		{
			this.GetDeviceEventsAsync(serviceName, displayName, null);
		}

		/// <remarks/>
		public void GetDeviceEventsAsync(string serviceName, string displayName, object userState)
		{
			if ((this.GetDeviceEventsOperationCompleted == null))
			{
				this.GetDeviceEventsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDeviceEventsOperationCompleted);
			}
			this.InvokeAsync("GetDeviceEvents", new object[] {
                        serviceName,
                        displayName}, this.GetDeviceEventsOperationCompleted, userState);
		}

		private void OnGetDeviceEventsOperationCompleted(object arg)
		{
			if ((this.GetDeviceEventsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetDeviceEventsCompleted(this, new GetDeviceEventsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetMonitoringAlerts", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public MonitoredObjectAlert[] GetMonitoringAlerts(string serviceName, string virtualMachineName)
		{
			object[] results = this.Invoke("GetMonitoringAlerts", new object[] {
                        serviceName,
                        virtualMachineName});
			return ((MonitoredObjectAlert[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetMonitoringAlerts(string serviceName, string virtualMachineName, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetMonitoringAlerts", new object[] {
                        serviceName,
                        virtualMachineName}, callback, asyncState);
		}

		/// <remarks/>
		public MonitoredObjectAlert[] EndGetMonitoringAlerts(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((MonitoredObjectAlert[])(results[0]));
		}

		/// <remarks/>
		public void GetMonitoringAlertsAsync(string serviceName, string virtualMachineName)
		{
			this.GetMonitoringAlertsAsync(serviceName, virtualMachineName, null);
		}

		/// <remarks/>
		public void GetMonitoringAlertsAsync(string serviceName, string virtualMachineName, object userState)
		{
			if ((this.GetMonitoringAlertsOperationCompleted == null))
			{
				this.GetMonitoringAlertsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMonitoringAlertsOperationCompleted);
			}
			this.InvokeAsync("GetMonitoringAlerts", new object[] {
                        serviceName,
                        virtualMachineName}, this.GetMonitoringAlertsOperationCompleted, userState);
		}

		private void OnGetMonitoringAlertsOperationCompleted(object arg)
		{
			if ((this.GetMonitoringAlertsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetMonitoringAlertsCompleted(this, new GetMonitoringAlertsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetPerfomanceValue", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public PerformanceDataValue[] GetPerfomanceValue(string VmName, PerformanceType perf, System.DateTime startPeriod, System.DateTime endPeriod)
		{
			object[] results = this.Invoke("GetPerfomanceValue", new object[] {
                        VmName,
                        perf,
                        startPeriod,
                        endPeriod});
			return ((PerformanceDataValue[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetPerfomanceValue(string VmName, PerformanceType perf, System.DateTime startPeriod, System.DateTime endPeriod, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetPerfomanceValue", new object[] {
                        VmName,
                        perf,
                        startPeriod,
                        endPeriod}, callback, asyncState);
		}

		/// <remarks/>
		public PerformanceDataValue[] EndGetPerfomanceValue(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((PerformanceDataValue[])(results[0]));
		}

		/// <remarks/>
		public void GetPerfomanceValueAsync(string VmName, PerformanceType perf, System.DateTime startPeriod, System.DateTime endPeriod)
		{
			this.GetPerfomanceValueAsync(VmName, perf, startPeriod, endPeriod, null);
		}

		/// <remarks/>
		public void GetPerfomanceValueAsync(string VmName, PerformanceType perf, System.DateTime startPeriod, System.DateTime endPeriod, object userState)
		{
			if ((this.GetPerfomanceValueOperationCompleted == null))
			{
				this.GetPerfomanceValueOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPerfomanceValueOperationCompleted);
			}
			this.InvokeAsync("GetPerfomanceValue", new object[] {
                        VmName,
                        perf,
                        startPeriod,
                        endPeriod}, this.GetPerfomanceValueOperationCompleted, userState);
		}

		private void OnGetPerfomanceValueOperationCompleted(object arg)
		{
			if ((this.GetPerfomanceValueCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetPerfomanceValueCompleted(this, new GetPerfomanceValueCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ConfigureCreatedVMNetworkAdapters", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public void ConfigureCreatedVMNetworkAdapters(VMInfo vmInfo)
		{
			this.Invoke("ConfigureCreatedVMNetworkAdapters", new object[] {
                        vmInfo});
		}

		/// <remarks/>
		public System.IAsyncResult BeginConfigureCreatedVMNetworkAdapters(VMInfo vmInfo, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("ConfigureCreatedVMNetworkAdapters", new object[] {
                        vmInfo}, callback, asyncState);
		}

		/// <remarks/>
		public void EndConfigureCreatedVMNetworkAdapters(System.IAsyncResult asyncResult)
		{
			this.EndInvoke(asyncResult);
		}

		/// <remarks/>
		public void ConfigureCreatedVMNetworkAdaptersAsync(VMInfo vmInfo)
		{
			this.ConfigureCreatedVMNetworkAdaptersAsync(vmInfo, null);
		}

		/// <remarks/>
		public void ConfigureCreatedVMNetworkAdaptersAsync(VMInfo vmInfo, object userState)
		{
			if ((this.ConfigureCreatedVMNetworkAdaptersOperationCompleted == null))
			{
				this.ConfigureCreatedVMNetworkAdaptersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnConfigureCreatedVMNetworkAdaptersOperationCompleted);
			}
			this.InvokeAsync("ConfigureCreatedVMNetworkAdapters", new object[] {
                        vmInfo}, this.ConfigureCreatedVMNetworkAdaptersOperationCompleted, userState);
		}

		private void OnConfigureCreatedVMNetworkAdaptersOperationCompleted(object arg)
		{
			if ((this.ConfigureCreatedVMNetworkAdaptersCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.ConfigureCreatedVMNetworkAdaptersCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/MoveVM", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VMInfo MoveVM(VMInfo vmForMove)
		{
			object[] results = this.Invoke("MoveVM", new object[] {
                        vmForMove});
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginMoveVM(VMInfo vmForMove, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("MoveVM", new object[] {
                        vmForMove}, callback, asyncState);
		}

		/// <remarks/>
		public VMInfo EndMoveVM(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VMInfo)(results[0]));
		}

		/// <remarks/>
		public void MoveVMAsync(VMInfo vmForMove)
		{
			this.MoveVMAsync(vmForMove, null);
		}

		/// <remarks/>
		public void MoveVMAsync(VMInfo vmForMove, object userState)
		{
			if ((this.MoveVMOperationCompleted == null))
			{
				this.MoveVMOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMoveVMOperationCompleted);
			}
			this.InvokeAsync("MoveVM", new object[] {
                        vmForMove}, this.MoveVMOperationCompleted, userState);
		}


		private void OnMoveVMOperationCompleted(object arg)
		{
			if ((this.MoveVMCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.MoveVMCompleted(this, new MoveVMCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
		[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetVirtualNetworkByHostName", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public VirtualNetworkInfo[] GetVirtualNetworkByHostName(string hostName)
		{
			object[] results = this.Invoke("GetVirtualNetworkByHostName", new object[] {
                        hostName});
			return ((VirtualNetworkInfo[])(results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetVirtualNetworkByHostName(string hostName, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetVirtualNetworkByHostName", new object[] {
                        hostName}, callback, asyncState);
		}

		/// <remarks/>
		public VirtualNetworkInfo[] EndGetVirtualNetworkByHostName(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((VirtualNetworkInfo[])(results[0]));
		}

		/// <remarks/>
		public void GetVirtualNetworkByHostNameAsync(string hostName)
		{
			this.GetVirtualNetworkByHostNameAsync(hostName, null);
		}

		/// <remarks/>
		public void GetVirtualNetworkByHostNameAsync(string hostName, object userState)
		{
			if ((this.GetVirtualNetworkByHostNameOperationCompleted == null))
			{
				this.GetVirtualNetworkByHostNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetVirtualNetworkByHostNameOperationCompleted);
			}
			this.InvokeAsync("GetVirtualNetworkByHostName", new object[] {
                        hostName}, this.GetVirtualNetworkByHostNameOperationCompleted, userState);
		}

		private void OnGetVirtualNetworkByHostNameOperationCompleted(object arg)
		{
			if ((this.GetVirtualNetworkByHostNameCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
				this.GetVirtualNetworkByHostNameCompleted(this, new GetVirtualNetworkByHostNameCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		public new void CancelAsync(object userState)
		{
			base.CancelAsync(userState);
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualMachineCompletedEventHandler(object sender, GetVirtualMachineCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualMachineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualMachineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualMachine Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualMachine)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualMachineExCompletedEventHandler(object sender, GetVirtualMachineExCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualMachineExCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualMachineExCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualMachine Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualMachine)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualMachinesCompletedEventHandler(object sender, GetVirtualMachinesCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualMachinesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualMachinesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualMachine[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualMachine[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualMachineThumbnailImageCompletedEventHandler(object sender, GetVirtualMachineThumbnailImageCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualMachineThumbnailImageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualMachineThumbnailImageCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public byte[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((byte[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void CreateVirtualMachineCompletedEventHandler(object sender, CreateVirtualMachineCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class CreateVirtualMachineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal CreateVirtualMachineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VMInfo Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VMInfo)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void CreateVMFromVMCompletedEventHandler(object sender, CreateVMFromVMCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class CreateVMFromVMCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal CreateVMFromVMCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VMInfo Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VMInfo)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void UpdateVirtualMachineCompletedEventHandler(object sender, UpdateVirtualMachineCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class UpdateVirtualMachineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal UpdateVirtualMachineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VMInfo Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VMInfo)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ChangeVirtualMachineStateCompletedEventHandler(object sender, ChangeVirtualMachineStateCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ChangeVirtualMachineStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ChangeVirtualMachineStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ShutDownVirtualMachineCompletedEventHandler(object sender, ShutDownVirtualMachineCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ShutDownVirtualMachineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ShutDownVirtualMachineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ReturnCode Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ReturnCode)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualMachineJobsCompletedEventHandler(object sender, GetVirtualMachineJobsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualMachineJobsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualMachineJobsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ConcreteJob[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ConcreteJob[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void RenameVirtualMachineCompletedEventHandler(object sender, RenameVirtualMachineCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class RenameVirtualMachineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal RenameVirtualMachineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void DeleteVirtualMachineCompletedEventHandler(object sender, DeleteVirtualMachineCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class DeleteVirtualMachineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal DeleteVirtualMachineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualMachineSnapshotsCompletedEventHandler(object sender, GetVirtualMachineSnapshotsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualMachineSnapshotsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualMachineSnapshotsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualMachineSnapshot[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualMachineSnapshot[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetSnapshotCompletedEventHandler(object sender, GetSnapshotCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetSnapshotCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetSnapshotCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualMachineSnapshot Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualMachineSnapshot)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void CreateSnapshotCompletedEventHandler(object sender, CreateSnapshotCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class CreateSnapshotCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal CreateSnapshotCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void RenameSnapshotCompletedEventHandler(object sender, RenameSnapshotCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class RenameSnapshotCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal RenameSnapshotCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ApplySnapshotCompletedEventHandler(object sender, ApplySnapshotCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ApplySnapshotCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ApplySnapshotCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void DeleteSnapshotCompletedEventHandler(object sender, DeleteSnapshotCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class DeleteSnapshotCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal DeleteSnapshotCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void DeleteSnapshotSubtreeCompletedEventHandler(object sender, DeleteSnapshotSubtreeCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class DeleteSnapshotSubtreeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal DeleteSnapshotSubtreeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetSnapshotThumbnailImageCompletedEventHandler(object sender, GetSnapshotThumbnailImageCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetSnapshotThumbnailImageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetSnapshotThumbnailImageCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public byte[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((byte[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetExternalSwitchesCompletedEventHandler(object sender, GetExternalSwitchesCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetExternalSwitchesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetExternalSwitchesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualSwitch[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualSwitch[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetSwitchesCompletedEventHandler(object sender, GetSwitchesCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetSwitchesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetSwitchesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualSwitch[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualSwitch[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void SwitchExistsCompletedEventHandler(object sender, SwitchExistsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class SwitchExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal SwitchExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public bool Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((bool)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void CreateSwitchCompletedEventHandler(object sender, CreateSwitchCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class CreateSwitchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal CreateSwitchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualSwitch Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualSwitch)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void DeleteSwitchCompletedEventHandler(object sender, DeleteSwitchCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class DeleteSwitchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal DeleteSwitchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ReturnCode Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ReturnCode)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetInsertedDVDCompletedEventHandler(object sender, GetInsertedDVDCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetInsertedDVDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetInsertedDVDCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public string Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((string)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void InsertDVDCompletedEventHandler(object sender, InsertDVDCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class InsertDVDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal InsertDVDCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void EjectDVDCompletedEventHandler(object sender, EjectDVDCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class EjectDVDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal EjectDVDCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetLibraryItemsCompletedEventHandler(object sender, GetLibraryItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetLibraryItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetLibraryItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public LibraryItem[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((LibraryItem[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetOSLibraryItemsCompletedEventHandler(object sender, GetOSLibraryItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetOSLibraryItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetOSLibraryItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public LibraryItem[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((LibraryItem[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetHostsCompletedEventHandler(object sender, GetHostsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetHostsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetHostsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public LibraryItem[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((LibraryItem[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetClustersCompletedEventHandler(object sender, GetClustersCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetClustersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetClustersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public LibraryItem[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((LibraryItem[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetKVPItemsCompletedEventHandler(object sender, GetKVPItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetKVPItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetKVPItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public KvpExchangeDataItem[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((KvpExchangeDataItem[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetStandardKVPItemsCompletedEventHandler(object sender, GetStandardKVPItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetStandardKVPItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetStandardKVPItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public KvpExchangeDataItem[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((KvpExchangeDataItem[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void AddKVPItemsCompletedEventHandler(object sender, AddKVPItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class AddKVPItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal AddKVPItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void RemoveKVPItemsCompletedEventHandler(object sender, RemoveKVPItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class RemoveKVPItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal RemoveKVPItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ModifyKVPItemsCompletedEventHandler(object sender, ModifyKVPItemsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ModifyKVPItemsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ModifyKVPItemsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualHardDiskInfoCompletedEventHandler(object sender, GetVirtualHardDiskInfoCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualHardDiskInfoCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualHardDiskInfoCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualHardDiskInfo Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualHardDiskInfo)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void MountVirtualHardDiskCompletedEventHandler(object sender, MountVirtualHardDiskCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class MountVirtualHardDiskCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal MountVirtualHardDiskCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public MountedDiskInfo Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((MountedDiskInfo)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void UnmountVirtualHardDiskCompletedEventHandler(object sender, UnmountVirtualHardDiskCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class UnmountVirtualHardDiskCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal UnmountVirtualHardDiskCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ReturnCode Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ReturnCode)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ExpandVirtualHardDiskCompletedEventHandler(object sender, ExpandVirtualHardDiskCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ExpandVirtualHardDiskCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ExpandVirtualHardDiskCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ConvertVirtualHardDiskCompletedEventHandler(object sender, ConvertVirtualHardDiskCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ConvertVirtualHardDiskCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ConvertVirtualHardDiskCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public JobResult Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((JobResult)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void DeleteRemoteFileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ExpandDiskVolumeCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ReadRemoteFileCompletedEventHandler(object sender, ReadRemoteFileCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ReadRemoteFileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ReadRemoteFileCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public string Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((string)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void WriteRemoteFileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetJobCompletedEventHandler(object sender, GetJobCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetJobCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetJobCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ConcreteJob Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ConcreteJob)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetAllJobsCompletedEventHandler(object sender, GetAllJobsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetAllJobsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetAllJobsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ConcreteJob[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ConcreteJob[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ChangeJobStateCompletedEventHandler(object sender, ChangeJobStateCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class ChangeJobStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal ChangeJobStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public ChangeJobStateReturnCode Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((ChangeJobStateReturnCode)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetProcessorCoresNumberCompletedEventHandler(object sender, GetProcessorCoresNumberCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetProcessorCoresNumberCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetProcessorCoresNumberCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public int Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((int)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void CheckServerStateCompletedEventHandler(object sender, CheckServerStateCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class CheckServerStateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal CheckServerStateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public bool Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((bool)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetDeviceEventsCompletedEventHandler(object sender, GetDeviceEventsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetDeviceEventsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetDeviceEventsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public MonitoredObjectEvent[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((MonitoredObjectEvent[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetMonitoringAlertsCompletedEventHandler(object sender, GetMonitoringAlertsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetMonitoringAlertsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetMonitoringAlertsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public MonitoredObjectAlert[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((MonitoredObjectAlert[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetPerfomanceValueCompletedEventHandler(object sender, GetPerfomanceValueCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetPerfomanceValueCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetPerfomanceValueCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public PerformanceDataValue[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((PerformanceDataValue[])(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void ConfigureCreatedVMNetworkAdaptersCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void MoveVMCompletedEventHandler(object sender, MoveVMCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class MoveVMCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal MoveVMCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VMInfo Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VMInfo)(this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetVirtualNetworkByHostNameCompletedEventHandler(object sender, GetVirtualNetworkByHostNameCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetVirtualNetworkByHostNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{

		private object[] results;

		internal GetVirtualNetworkByHostNameCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public VirtualNetworkInfo[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((VirtualNetworkInfo[])(this.results[0]));
			}
		}
	}
}
